/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * dlgModificacionPedidos.java
 *
 * Created on Oct 16, 2011, 10:40:03 PM
 */

package visual.Despacho;

import bentity.beCliente;
import bentity.beDetallePedido;
import bentity.bePedido;
import bentity.beProducto;
import bentity.beUsuario;
import blogic.blCliente;
import blogic.blHelper;
import blogic.blLog;
import blogic.blPedido;
import blogic.blProducto;
import java.sql.Date;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import visual.Seguridad.visualHelper;

/**
 *
 * @author renzo
 */
public class dlgModificacionPedidos extends javax.swing.JDialog {
    private double mtoTotalPedido = 0.0;
    private String razonSocialCliente = null;
    private int idPedidoElegido = -1;
    private beUsuario usuario = null;
    /** Creates new form dlgModificacionPedidos */
    public dlgModificacionPedidos(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    public dlgModificacionPedidos(pnfMantenimientoPedidos parent, boolean modal, beUsuario usuario){
        super((java.awt.Frame)null,modal);
        initComponents();
        this.txtCliente.setTransferHandler(null);
        this.txtProducto.setTransferHandler(null);
        this.usuario = usuario;
        try{
            visualHelper.centrarDialogoEnPantalla(this);
            int fila = parent.getTblPedidos().getSelectedRow();
            this.idPedidoElegido = Integer.parseInt(parent.getTblPedidos().getValueAt(fila, 0).toString());
            ArrayList<beDetallePedido> detp = (new blPedido()).obtenerDetallePedidoPorId(this.idPedidoElegido);
            llenarTablaPedidosMontoTotal(detp);
            this.razonSocialCliente = parent.getTblPedidos().getValueAt(fila, 1).toString();
            this.txtCliente.setText(parent.getTblPedidos().getValueAt(fila, 1).toString());
            this.dtcFechaEntrega.setDate(Date.valueOf(parent.getTblPedidos().getValueAt(fila, 3).toString()));
            DefaultTableModel dtm = (DefaultTableModel)this.tblPedidos.getModel();
            dtm.addTableModelListener(new TableModelListener() {
                public void tableChanged(TableModelEvent e) {
                    tblPedidosTableChanged(e);
                }
            });
        }
        catch(Exception e){
            e.printStackTrace();
            visualHelper.mostrarMensajeError("Ocurrió un error al cargar la ventana.");
        }
    }

    public void tblPedidosTableChanged(TableModelEvent e){
        try{
            int fila = e.getFirstRow();
            int col = e.getColumn();
            if (col == 2){
                String strNumCajas = this.tblPedidos.getValueAt(fila, col).toString();
                if ((new blHelper()).caracteresSoloDigitos(strNumCajas) && (strNumCajas.length() <8)){
                    int idProducto = Integer.parseInt(this.tblPedidos.getValueAt(fila, 0).toString());
                    double precioProducto = (new blProducto()).obtenerPrecioProducto(idProducto);
                    int numCajas = Integer.parseInt(strNumCajas);
                    double subtotal = numCajas * precioProducto;
                    this.tblPedidos.setValueAt(subtotal, fila, 3);
                    this.recalcularMontoTotal();
                }
                else{
                    JOptionPane.showMessageDialog(this, "Debe ingresar un número válido", "Información", JOptionPane.INFORMATION_MESSAGE);
                    this.tblPedidos.setValueAt(0, fila, col);
                    this.tblPedidos.setValueAt(0, fila, 3);
                    this.recalcularMontoTotal();
                }
            }
        }
        catch (Exception ex){
            ex.printStackTrace();
            visualHelper.mostrarMensajeError("Ocurrió un error al calcular el subtotal");
        }
    }

    private void recalcularMontoTotal() {
        int numFilas = this.tblPedidos.getRowCount();
        double mtoTotal = 0.0;
        double subtotal = 0.0;
        for(int i=0; i<numFilas;i++){
            subtotal = Double.parseDouble(this.tblPedidos.getValueAt(i, 3).toString());
            mtoTotal += subtotal;
        }
        this.mtoTotalPedido = mtoTotal;
        this.tbxMtoTotal.setText(""+this.mtoTotalPedido);
    }

    private void llenarTablaPedidosMontoTotal(ArrayList<beDetallePedido> detallePedido) {
        DefaultTableModel dtm = (DefaultTableModel)this.tblPedidos.getModel();
        Object [] datos = new Object [4];
        for(int i=0;i<detallePedido.size();i++){
            datos[0] = detallePedido.get(i).getIdProducto();
            datos[1] = detallePedido.get(i).getNombreProducto();
            datos[2] = detallePedido.get(i).getCantProducto();
            datos[3] = detallePedido.get(i).getSubtotal();
            dtm.addRow(datos);
            this.mtoTotalPedido += detallePedido.get(i).getSubtotal();
        }
        this.tblProductos.setRowSelectionAllowed(true);
        this.tblProductos.setColumnSelectionAllowed(false);
        this.tbxMtoTotal.setText(String.valueOf(this.mtoTotalPedido));
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        lblTitulo = new javax.swing.JLabel();
        btnCancelar = new javax.swing.JButton();
        btnModificar = new javax.swing.JButton();
        pnlDatosPedido = new javax.swing.JPanel();
        lblCliente = new javax.swing.JLabel();
        txtCliente = new javax.swing.JTextField();
        lblFechaEntrega = new javax.swing.JLabel();
        dtcFechaEntrega = new com.toedter.calendar.JDateChooser();
        pnlProductosPedido = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblPedidos = new javax.swing.JTable();
        jScrollPane3 = new javax.swing.JScrollPane();
        tblProductos = new javax.swing.JTable();
        tbxMtoTotal = new javax.swing.JTextField();
        lblMontoTotal = new javax.swing.JLabel();
        btnQuitar = new javax.swing.JButton();
        btnAgregar = new javax.swing.JButton();
        lblProducto = new javax.swing.JLabel();
        txtProducto = new javax.swing.JTextField();
        btnBuscarProducto = new javax.swing.JButton();
        lblDetallePedido = new javax.swing.JLabel();
        lblProductos1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Thor Store - Modificación de pedidos");
        setAlwaysOnTop(true);
        setMinimumSize(new java.awt.Dimension(920, 520));
        setModal(true);
        setResizable(false);
        getContentPane().setLayout(null);

        lblTitulo.setFont(new java.awt.Font("DejaVu Sans", 0, 36));
        lblTitulo.setForeground(new java.awt.Color(0, 0, 0));
        lblTitulo.setText("Modificación de pedidos");
        getContentPane().add(lblTitulo);
        lblTitulo.setBounds(260, 10, 435, 43);

        btnCancelar.setBackground(new java.awt.Color(240, 235, 226));
        btnCancelar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnCancelar.setForeground(new java.awt.Color(0, 0, 0));
        btnCancelar.setText("Cancelar");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btnCancelar);
        btnCancelar.setBounds(480, 430, 120, 27);

        btnModificar.setBackground(new java.awt.Color(240, 235, 226));
        btnModificar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnModificar.setForeground(new java.awt.Color(0, 0, 0));
        btnModificar.setText("Modificar");
        btnModificar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnModificarActionPerformed(evt);
            }
        });
        getContentPane().add(btnModificar);
        btnModificar.setBounds(330, 430, 120, 27);

        pnlDatosPedido.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Datos de pedido", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 14), new java.awt.Color(0, 0, 0))); // NOI18N
        pnlDatosPedido.setLayout(null);

        lblCliente.setFont(new java.awt.Font("Dialog", 0, 12));
        lblCliente.setForeground(new java.awt.Color(0, 0, 0));
        lblCliente.setText("Cliente");
        pnlDatosPedido.add(lblCliente);
        lblCliente.setBounds(10, 30, 43, 15);

        txtCliente.setEditable(false);
        pnlDatosPedido.add(txtCliente);
        txtCliente.setBounds(90, 30, 220, 28);

        lblFechaEntrega.setFont(new java.awt.Font("Dialog", 0, 12));
        lblFechaEntrega.setForeground(new java.awt.Color(0, 0, 0));
        lblFechaEntrega.setText("Fecha de entrega");
        pnlDatosPedido.add(lblFechaEntrega);
        lblFechaEntrega.setBounds(350, 30, 120, 15);
        pnlDatosPedido.add(dtcFechaEntrega);
        dtcFechaEntrega.setBounds(480, 30, 240, 28);

        getContentPane().add(pnlDatosPedido);
        pnlDatosPedido.setBounds(110, 60, 750, 80);

        pnlProductosPedido.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Productos de pedido", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 14), new java.awt.Color(0, 0, 0))); // NOI18N
        pnlProductosPedido.setLayout(null);

        tblPedidos.setAutoCreateRowSorter(true);
        tblPedidos.setForeground(new java.awt.Color(0, 0, 0));
        tblPedidos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Codigo", "Producto", "N° Cajas", "Subtotal"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, true, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tblPedidos.setGridColor(javax.swing.UIManager.getDefaults().getColor("TableHeader.background"));
        tblPedidos.setMaximumSize(new java.awt.Dimension(800, 72));
        tblPedidos.setMinimumSize(new java.awt.Dimension(200, 72));
        tblPedidos.setSelectionForeground(new java.awt.Color(0, 0, 0));
        tblPedidos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane2.setViewportView(tblPedidos);

        pnlProductosPedido.add(jScrollPane2);
        jScrollPane2.setBounds(560, 90, 320, 120);

        tblProductos.setAutoCreateRowSorter(true);
        tblProductos.setForeground(new java.awt.Color(0, 0, 0));
        tblProductos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Codigo", "Producto", "Descripción", "Tipo Producto", "Precio lote"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tblProductos.setGridColor(javax.swing.UIManager.getDefaults().getColor("TableHeader.background"));
        tblProductos.setMaximumSize(new java.awt.Dimension(800, 72));
        tblProductos.setMinimumSize(new java.awt.Dimension(200, 72));
        tblProductos.setSelectionForeground(new java.awt.Color(0, 0, 0));
        tblProductos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane3.setViewportView(tblProductos);

        pnlProductosPedido.add(jScrollPane3);
        jScrollPane3.setBounds(10, 90, 440, 120);

        tbxMtoTotal.setEditable(false);
        tbxMtoTotal.setText("0.0");
        pnlProductosPedido.add(tbxMtoTotal);
        tbxMtoTotal.setBounds(750, 220, 129, 28);

        lblMontoTotal.setFont(new java.awt.Font("DejaVu Sans", 0, 12));
        lblMontoTotal.setText("Monto total");
        pnlProductosPedido.add(lblMontoTotal);
        lblMontoTotal.setBounds(660, 220, 72, 15);

        btnQuitar.setBackground(new java.awt.Color(240, 235, 226));
        btnQuitar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnQuitar.setForeground(new java.awt.Color(0, 0, 0));
        btnQuitar.setText("Quitar");
        btnQuitar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnQuitarActionPerformed(evt);
            }
        });
        pnlProductosPedido.add(btnQuitar);
        btnQuitar.setBounds(460, 160, 90, 30);

        btnAgregar.setBackground(new java.awt.Color(240, 235, 226));
        btnAgregar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnAgregar.setForeground(new java.awt.Color(0, 0, 0));
        btnAgregar.setText("Agregar");
        btnAgregar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAgregarActionPerformed(evt);
            }
        });
        pnlProductosPedido.add(btnAgregar);
        btnAgregar.setBounds(460, 120, 90, 30);

        lblProducto.setFont(new java.awt.Font("DejaVu Sans", 0, 12));
        lblProducto.setForeground(new java.awt.Color(0, 0, 0));
        lblProducto.setText("Ingresar código o nombre del producto");
        pnlProductosPedido.add(lblProducto);
        lblProducto.setBounds(10, 30, 246, 15);

        txtProducto.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txtProductoKeyTyped(evt);
            }
        });
        pnlProductosPedido.add(txtProducto);
        txtProducto.setBounds(260, 30, 156, 28);

        btnBuscarProducto.setBackground(new java.awt.Color(240, 235, 226));
        btnBuscarProducto.setFont(new java.awt.Font("Dialog", 0, 12));
        btnBuscarProducto.setForeground(new java.awt.Color(0, 0, 0));
        btnBuscarProducto.setText("Buscar");
        btnBuscarProducto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBuscarProductoActionPerformed(evt);
            }
        });
        pnlProductosPedido.add(btnBuscarProducto);
        btnBuscarProducto.setBounds(420, 30, 100, 30);

        lblDetallePedido.setFont(new java.awt.Font("Dialog", 0, 14));
        lblDetallePedido.setForeground(new java.awt.Color(0, 0, 0));
        lblDetallePedido.setText("Detalle del pedido");
        pnlProductosPedido.add(lblDetallePedido);
        lblDetallePedido.setBounds(560, 60, 140, 17);

        lblProductos1.setFont(new java.awt.Font("Dialog", 0, 14));
        lblProductos1.setForeground(new java.awt.Color(0, 0, 0));
        lblProductos1.setText("Productos");
        pnlProductosPedido.add(lblProductos1);
        lblProductos1.setBounds(10, 60, 80, 17);

        getContentPane().add(pnlProductosPedido);
        pnlProductosPedido.setBounds(20, 150, 900, 260);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        int rslt = JOptionPane.showConfirmDialog(this, "¿Está seguro que desea cancelar la modificación del pedido?", "Confirmación", JOptionPane.YES_NO_OPTION);
        if (rslt == JOptionPane.YES_OPTION){
            this.setVisible(false);
            this.dispose();
        }
}//GEN-LAST:event_btnCancelarActionPerformed

    private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModificarActionPerformed
        // TODO add your handling code here:
        try{
            if (this.dtcFechaEntrega.getDate() != null){
                Date fecEntrega = visualHelper.obtenerFechaCalendario(this.dtcFechaEntrega);
                Date fecHoy = (new blHelper()).dameFechaHoy();
                if (fecEntrega.compareTo(fecHoy)> 0){
                    if (this.tblPedidos.getRowCount() > 0){
                        if (this.validarTablaPedidos()){
                            bePedido pedido = new bePedido();
                            pedido.setIdPedido(this.idPedidoElegido);
                            ArrayList<beCliente> clientes = (new blCliente()).obtenerClientes(razonSocialCliente, "", "", "", "", "");
                            pedido.setCliente(clientes.get(0));
                            pedido.setMontoTotal(Double.parseDouble(this.tbxMtoTotal.getText()));
                            if (this.dtcFechaEntrega.getDate() != null)
                                pedido.setFechaEntrega(new Date(this.dtcFechaEntrega.getDate().getTime()));
                            ArrayList<beDetallePedido> detalles = new ArrayList<beDetallePedido>();
                            beDetallePedido det = null;
                            int numFilas = this.tblPedidos.getRowCount();
                            for(int i=0;i<numFilas;i++){
                                det = new beDetallePedido();
                                det.setIdProducto(Integer.parseInt(this.tblPedidos.getValueAt(i, 0).toString()));
                                det.setCantProducto(Integer.parseInt(this.tblPedidos.getValueAt(i, 2).toString()));
                                det.setSubtotal(Double.parseDouble(this.tblPedidos.getValueAt(i,3).toString()));
                                detalles.add(det);
                            }
                            pedido.setDetallePedido(detalles);
                            blPedido bp = new blPedido();
                            bp.modificarPedido(pedido);
                            visualHelper.mostrarMensajeSatisfaccion("Se modificó satisfactoriamente el pedido.");
                            (new blLog()).registrarLog(this.usuario.getIdUsuario(), this.usuario.getCargo(), "Se modificó el pedido con código "+this.idPedidoElegido);
                            this.setVisible(false);
                            this.dispose();
                            }
                        else
                            visualHelper.mostrarMensajeAdvertencia("Falta especificar el número de cajas de algún producto del pedido.");
                    }
                    else
                        visualHelper.mostrarMensajeAdvertencia("No ha agregado ningún producto.");
                }
                else
                    visualHelper.mostrarMensajeAdvertencia("La fecha de entrega debe ser posterior al día de hoy.");
            }
            else
                visualHelper.mostrarMensajeAdvertencia("Debe especificar una fecha de entrega");
        }
        catch(Exception e){
            e.printStackTrace();
            visualHelper.mostrarMensajeSatisfaccion("Ocurrió un error al momento de registrar el pedido.");
        }
}//GEN-LAST:event_btnModificarActionPerformed

    private boolean validarTablaPedidos(){
        if (this.tblPedidos.getRowCount()==0)
            return false;
        int numCajasActual = -1;
        for(int i=0; i<this.tblPedidos.getRowCount();i++){
            numCajasActual = Integer.parseInt(this.tblPedidos.getValueAt(i, 2).toString());
            if (numCajasActual == 0)
                return false;
        }
        return true;
    }

    private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAgregarActionPerformed
        // TODO add your handling code here:
        if (this.tblProductos.getSelectedRow() != -1){
            int fila = this.tblProductos.getSelectedRow();
            int idProducto = Integer.parseInt(this.tblProductos.getValueAt(fila, 0).toString());
            if (!this.estaEnPedido(idProducto)){
                Object []datos = new Object[4];
                datos[0] = this.tblProductos.getValueAt(fila, 0);
                datos[1] = this.tblProductos.getValueAt(fila, 1);
                datos[2] = 0;
                datos[3] = 0.0;
                DefaultTableModel dtm = (DefaultTableModel)this.tblPedidos.getModel();
                dtm.addRow(datos);
                this.tbxMtoTotal.setText(""+this.mtoTotalPedido);
            }
            else
                visualHelper.mostrarMensajeAdvertencia("El producto ya está agregado en el pedido.");
        } else
            JOptionPane.showMessageDialog(this, "Debe elegir un producto.", "Información", JOptionPane.INFORMATION_MESSAGE);
}//GEN-LAST:event_btnAgregarActionPerformed

    private boolean estaEnPedido(int idProducto){
        int idActual = -1;
        for(int i=0; i<this.tblPedidos.getRowCount();i++){
            idActual = Integer.parseInt(this.tblPedidos.getValueAt(i, 0).toString());
            if (idActual == idProducto)
                return true;
        }
        return false;
    }
    
    private void btnBuscarProductoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarProductoActionPerformed
        // TODO add your handling code here:
        try{
            String cadBusqueda = this.txtProducto.getText();
            if (!cadBusqueda.isEmpty()){
                blProducto bp = new blProducto();
                ArrayList<beProducto> listaProductos = bp.obtenerProductosPorCodigoNombre(cadBusqueda);
                this.limpiarTabla((DefaultTableModel)this.tblProductos.getModel());
                 if (listaProductos.size() == 0)
                    JOptionPane.showMessageDialog(this, "La búsqueda no arrojó resultados.","Información",JOptionPane.INFORMATION_MESSAGE);
                else
                    this.llenarTabla(listaProductos);
            } else
                JOptionPane.showMessageDialog(this, "La búsqueda no arrojó resultados.","Información",JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception e){
            e.printStackTrace();
            visualHelper.mostrarMensajeError("Ocurrió un error durante la carga de productos.");
        }
}//GEN-LAST:event_btnBuscarProductoActionPerformed

    private void btnQuitarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarActionPerformed
        // TODO add your handling code here:
        int fila = this.tblPedidos.getSelectedRow();
        if (fila != -1){
            DefaultTableModel dtm = (DefaultTableModel)this.tblPedidos.getModel();
            dtm.removeRow(fila);
            this.recalcularMontoTotal();
        }
        else
            visualHelper.mostrarMensajeAdvertencia("Debe elegir una fila para quitar.");
    }//GEN-LAST:event_btnQuitarActionPerformed

    private void txtProductoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtProductoKeyTyped
        // TODO add your handling code here:
        String cad = this.txtProducto.getText();
        if ((new blHelper()).caracteresSoloDigitos(cad)){
            if (cad.length() == 8)
                evt.consume();
            else
                visualHelper.soloDigitosLetrasPuntoComaComilla(evt);
        }
        else{
            if (cad.length() < 300)
                visualHelper.soloDigitosLetrasPuntoComaComilla(evt);
            else
                evt.consume();
        }
    }//GEN-LAST:event_txtProductoKeyTyped

    private void llenarTabla(ArrayList<beProducto> productos) {
        DefaultTableModel dtm = (DefaultTableModel)this.tblProductos.getModel();
        Object [] datos = new Object [8];
        for(int i=0;i<productos.size();i++){
            datos[0] = productos.get(i).getIdProducto();
            datos[1] = productos.get(i).getNombre();
            datos[2] = productos.get(i).getDescripcion();
            datos[3] = productos.get(i).getDescTipoProducto();
            datos[4] = productos.get(i).getCosto();
            dtm.addRow(datos);
        }
        this.tblProductos.setRowSelectionAllowed(true);
        this.tblProductos.setColumnSelectionAllowed(false);
    }

    private void limpiarTabla(DefaultTableModel dtm) {
        int numFilas = dtm.getRowCount();
        for(int i=(numFilas-1);i>=0;i--)
            dtm.removeRow(i);
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                dlgModificacionPedidos dialog = new dlgModificacionPedidos(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAgregar;
    private javax.swing.JButton btnBuscarProducto;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnModificar;
    private javax.swing.JButton btnQuitar;
    private com.toedter.calendar.JDateChooser dtcFechaEntrega;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JLabel lblCliente;
    private javax.swing.JLabel lblDetallePedido;
    private javax.swing.JLabel lblFechaEntrega;
    private javax.swing.JLabel lblMontoTotal;
    private javax.swing.JLabel lblProducto;
    private javax.swing.JLabel lblProductos1;
    private javax.swing.JLabel lblTitulo;
    private javax.swing.JPanel pnlDatosPedido;
    private javax.swing.JPanel pnlProductosPedido;
    private javax.swing.JTable tblPedidos;
    private javax.swing.JTable tblProductos;
    private javax.swing.JTextField tbxMtoTotal;
    private javax.swing.JTextField txtCliente;
    private javax.swing.JTextField txtProducto;
    // End of variables declaration//GEN-END:variables
}
